package com.cly.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cly.entity.Subject;
import com.cly.result.JsonRequest;

import java.util.List;
import java.util.Map;

/**
 * 科目表业务层接口
 *
 * @author 春风能解释
 * <p>
 * 2024-06-06
 */
public interface ISubjectService extends IService<Subject> {

    /**
     * 查询所有科目表信息
     *
     * @param subject 科目表条件
     * @return JSON
     */
    JsonRequest<List<Subject>> lookAllSubject(Subject subject);

    /**
     * 根据条件查询科目表信息
     *
     * @param current 页码
     * @param size    页长
     * @param subject 科目表条件
     * @return JSON
     */
    JsonRequest<List<Subject>> lookSubject(Integer current, Integer size, Subject subject);

    /**
     * 新增一条科目表信息
     *
     * @param subject 科目表信息
     * @return JSON
     */
    JsonRequest<Integer> addOneSubject(Subject subject);

    /**
     * 修改一条科目表信息
     *
     * @param subject 科目表信息
     * @return JSON
     */
    JsonRequest<Integer> updateOneSubject(Subject subject);

    /**
     * 批量删除科目表信息
     *
     * @param ids 科目表ID列表
     * @return JSON
     */
    JsonRequest<Integer> deleteSubjects(List<Long> ids);

    /**
     * 根据ID查询科目信息并转换为Map
     *
     * @param ids id
     * @return JSON
     */
    JsonRequest<Map<Long, Subject>> lookSubjectMap(List<Long> ids);
}